package com.chenyuhan.myview.viewpager.clipViewPager;

import android.app.Activity;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;

import com.chenyuhan.myview.R;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by Chenyuhan on 2017/9/6.
 */

public class ClipViewPagerActivity extends Activity {
    private ClipViewPager clipViewPager;
    private int[] mipmapId = {R.mipmap.s1_5, R.mipmap.s1_2, R.mipmap.s1_1, R.mipmap.s1_3, R.mipmap.s1_6, R.mipmap.s1_4};
    private List<ImageView> imageViewList = new ArrayList<>();

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_clipviewpager);
        /**调节ViewPager的滑动速度**/
        clipViewPager.setSpeedScroller(100);
        /**给ViewPager设置缩放动画，这里通过PageTransformer来实现**/
        clipViewPager.setPageTransformer(true, new ScalePageTransformer());
        clipViewPager.setOffscreenPageLimit(2);
        /**
         * 需要将整个页面的事件分发给ViewPager，不然的话只有ViewPager中间的view能滑动，其他的都不能滑动，
         * 这是肯定的，因为ViewPager总体布局就是中间那一块大小，其他的子布局都跑到ViewPager外面来了
         */
        findViewById(R.id.image_clip_viewpager_fl).setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                return clipViewPager.dispatchTouchEvent(event);
            }
        });
        clipViewPager = findViewById(R.id.image_clip_viewpager);

        for (int i = 0; i < mipmapId.length; i++) {
            ImageView imageView = new ImageView(this);
            imageView.setBackgroundResource(mipmapId[i]);
            imageViewList.add(imageView);
        }
        ViewPagerImageViewAdapter viewPagerImageViewAdapter = new ViewPagerImageViewAdapter(imageViewList);
        clipViewPager.setAdapter(viewPagerImageViewAdapter);
        //显示正中间的item，让用户看不到边界，循环滑动
        clipViewPager.setCurrentItem(Integer.MAX_VALUE / 2);
    }
}
